1. Field of the Invention
The present invention pertains to the field of electronic design automation (EDA). More particularly, this invention relates to the art of routing differential pairs.
2. Background
Technological advances have lead to increasingly complex circuitry. At the board level, circuits are routinely composed of dozens of complex very large scale integration (VLSI) components. Hundreds, or even thousands, of conductive traces may be required in one or more layers of a printed circuit board (PCB) to selectively connect the components. Each trace must meet a number of constraints, such as signal integrity as well as minimum and maximum signal delays. It would be incredibly time consuming, if not physically impossible, for a person to manually lay out all of the physical traces, and verify all of the signal constraints for today's complex electronic designs. At the chip level, integrated circuit design is moving toward even more complex circuits. Often times, an entire system is laid out on a single chip.
Even as complexity increases, market pressures require shorter design cycles. The pace of competition will not allow a designer to spend countless hours laying out a chip or PCB manually. As a result, designers are always looking for ways to streamline the design process. One simplification involves designing at a higher level of abstraction. In other words, a designer can provide a "netlist" which specifies all of the component connections. Then, given the physical dimensions and pin locations of components and the printed circuit board or chip to which the components are coupled, an automated design tool can generate a physical layout for the circuit.
High frequency circuits pose additional design difficulties. Signals that propagate over lines at high frequency are more susceptible to interference. Interference includes signal reflections at impedance changes, and cross-talk from electromagnetic fields of neighboring components and lines. One approach to high frequency signal propagation involves the use of differential pairs. A differential pair has two conductive traces which are laid out, for the most part, in parallel and in close proximity to one another. The traces can be either on the same layer or adjacent layers of a PCB or chip.
When a signal is propagated on a differential pair, the signal is equal to the difference in voltage levels on the two traces. For instance, if the threshold voltage for a logical one is 0.7 volts, one trace will provide at least positive 0.35 volts and the other trace will provide at least negative 0.35 volts. In other words, a wave form on one trace is propagated with a mirror image wave form on the other trace, and the difference between the two wave forms comprises the propagated signal.
Since the two traces are, for the most part, in close proximity to one another, any interference experienced by one trace is likely to be experienced by both traces. For instance, if one trace experiences a positive voltage spike, the other trace is likely to experience a positive voltage spike of the same magnitude. The signal is equal to the difference in the wave forms, so the difference remains constant because the spike is added to both wave forms. In short, differential pairs are much less susceptible to interference. As a result, differential pairs are particularly suitable for high frequency signal propagation.
Automated routing of differential pairs is more complex than single entity routing. For each connection, two traces must be routed in a coordinated manner. For the most part, the traces must be kept in close proximity as well as substantially parallel to one another. Of particular concern is the location of the starting points where the differential pair begins to be routed in a coordinated manner. There are two endpoints, one for each trace, at the end of a differential pair. At an end of a given differential pair, a number of obstacles may crowd around one or both endpoints. Therefore, a need exists for an improved method and apparatus for automatically locating the coordinated starting points of a differential pair.